1. Field of the Invention
The present invention relates to an information processing apparatus, a KVM switch, a server, and a computer readable medium which make the position of a mouse cursor of the information processing apparatus and the position of a mouse cursor of the server coincide with each other.
2. Description of the Related Art
Up to now, various techniques have been developed as for the means to operate a computer remotely. In a remote operation, two computers on an operated side (a server) and an operating side (a remote PC) are necessary.
For example, there have been known a system which displays both of screen information of a remote terminal and information of a terminal in hand without damaging operability and visibility of a screen displayed on a display of the terminal in the hand (see Japanese Laid-Open Patent Publication No. 2007-65944), a cursor controlling apparatus by which an amount of cursor movement to an amount of movement of a remote control transmitter becomes constant even if the distance between the remote control transmitter and an image pickup means is different (see Japanese Laid-Open Patent Publication No. 06-75695), and a system which remote-controls a computer from a portable phone by connecting the portable phone to the remote computer (see Japanese Laid-Open Patent Publication No. 2006-197299).
Further, there has been known a technique that software for remote control is not installed in a server, a converter is disposed at a connecting route between the server and a remote PC, and the converter acts for a keyboard and a mouse connected to the server (see Japanese Patent No. 2698685).
In the technique, signals output from the keyboard and the mouse connected to the remote PC are converted into digital data, and the digital data is transferred on a line. The server receives the digital data to restore it to the signals, and inputs the signals thereto. Therefore, the server operates so that the keyboard and the mouse are directly connected to the server. Further, a video signal output from the server is converted into digital data, and the converted digital data is transferred on a line. The remote PC receives the converted digital data to restore it to the video signal, and inputs the video signal thereto. Therefore, a monitor set up on the side of the remote PC operates so as to be a monitor connected to the server.
For example, there has been known a system including a KVM switch in Patent Application Publication No. 2003-534685, as another technique to which these technique are applied.
The system of Patent Application Publication No. 2003-534685 has a basic concept of Japanese Patent No. 2698685. In a window system that the remote PC has, a window is assumed to be a display means, and the window is assumed to be an input route of keyboard and mouse data. That is, the operations of the keyboard and the mouse executed in the window of the remote PC are reflected in the server.
(Problem 1)
In the above-mentioned technique of Patent Application Publication No. 2003-534685, the window that the remote PC has is displayed as shown in FIG. 19, for example. In this case, although two mouse cursors including a mouse cursor for the remote PC (hereinafter referred to as “a remote mouse cursor”) to operate the window of the remote PC, and a mouse cursor for server (hereinafter referred to as “a server mouse cursor”) which is displayed inside the window of the remote PC exist, there is the case where a position of the remote mouse cursor displayed by the remote PC and a position of the server mouse cursor displayed by the remote PC do not coincide with each other. This is referred to as a position gap, and there has been known a method to correct and handle the position gap with a position gap correcting function. However, there is the following problem in this.
Generally, in the window system, there is an acceleration process of the mouse cursor, and the server multiplies data output from the mouse by an acceleration factor to increase or reduce the mouse data. Therefore, when the mouse data operated with the remote PC is directly transmitted to the server, the server multiplies the mouse data from the remote PC by the acceleration factor to increase or reduce the mouse data. Accordingly, the remote mouse cursor displayed on the remote PC and the server mouse cursor displayed on the remote PC hardly overlap with each other. At this time, an operator of the remote PC is puzzled by the two cursors that do different movements, an accurate mouse operation is prevented, and hence the operator feels stress.
Therefore, it was basic to invalidate this acceleration process at the expense of operability so far.
To properly execute the position gap correcting function by the remote PC, it is necessary to prohibit this acceleration process. The position gap correcting function represents a means to move the position of the mouse cursor of the server to the position of the mouse cursor of the remote PC compulsorily by additionally outputting the mouse data from the remote PC to the server so as to cancel an amount of the position gap when the position gap between the mouse cursors of the server and the remote PC occurs. At this time, the mouse data additionally output from the remote PC to the server often exceeds a reference value, i.e., a threshold whether the acceleration process starts. Therefore, when the acceleration process is effective in the server, the mouse cursor of the server moves so that an amount of the movement of the mouse cursor of the server exceeds the amount of the position gap that should be actually moved. As a result, the position gap correcting function is not properly executed.
Thus, conventionally, when the acceleration process executed by the server has not been invalidated, the position gap between the mouse cursors of the server and the remote PC could not be corrected, so that it has be impossible to provide a comfortable mouse operating environment for the operator of the mouse of the remote PC.
Although a description is given of the case where the acceleration process of the server has to be invalidated to make the position gap correcting function effective, this acceleration process cannot be easily invalidated depending on a windowing system or a operating system. As for this, a X-window system used by the UNIX (a registered trademark) system OS is representative. As for an example which can invalidate acceleration process easily, Windows (a registered trademark) of Microsoft company is cited.
(Problem 2)
Not to give the operator of the remote PC embarrassment, there has been known a technique which controls the remote PC so that, on the window that displays the mouse cursor of the server, the remote mouse cursor of the remote PC is not displayed, and only the movement of the mouse cursor of the server is displayed even if the mouse of the remote PC is operated. However, in the technique, the following problem occurs.
Generally, in the window system, the mouse cursor is configured such that a window right under the mouse cursor is operated, and the authority of display and non-display of the mouse cursor is given to the window right under the mouse cursor. Therefore, the mouse cursor of the remote PC can be made to non-display only when the mouse cursor of the remote PC is directly above the window where non-display of the mouse cursor has been set.
That is, at the instant when the mouse cursor exceeds the frame of the window, the mouse cursor of the remote PC is displayed again assuming that any one of other window is operated. Further, when the mouse cursor comes again directly above the window where non-display of the mouse cursor has been set, the mouse cursor of the remote PC is not displayed.
Here, a description will now be given of the meaning of the data output from the mouse (i.e., the mouse data), which becomes the prime cause of the problem. Up to the present date after the mouse is invented, the data output from the mouse (the mouse data) is represented by relative coordinates. The relative coordinates are called the amount of the movement. By using this, it can be expressed that the mouse moves N in the X-axis direction, and M in the Y-axis direction, for example. Original values of the N and M are calculated by the mouse, and the calculation method thereof is a well-known technique.
When the mouse cursor of the remote PC, which has exceeded the frame of the window and has been displayed once, moves again directly above the window where non-display of the mouse cursor has been set, the mouse cursor of the remote PC becomes non-display. At this time, the following problem occurs from the convenience of the process of the relative coordinates mentioned above. This is explained with FIG. 20.
FIG. 20 is a diagram showing an example of a screen of the conventional remote PC.
In FIG. 20, reference numeral 201 denotes a window where non-display of the mouse cursor has been set, reference numeral 202 denotes another window where display of the mouse cursor has been set, and reference numeral 203 denotes a screen of the remote PC. Reference numeral 204 denotes the mouse cursor of the server, and reference numeral 205 denotes the mouse cursor of the remote PC. A screen of the server is displayed on a window 201.
The mouse cursor 204 of the server is at a position “a” in an initial state, and the mouse cursor 205 of the remote PC is at a position “A” in the initial state.
The mouse cursor 204 of the server moves in response to the movement of the mouse cursor 205 of the remote PC. At this time, when the mouse cursor 205 of the remote PC is directly above the window 201, the mouse cursor 205 of the remote PC is not displayed. That is, when the mouse cursor 205 of the remote PC is at the position “A”, “F”, or “G”, it becomes non-display.
Next, when the mouse cursor 205 of the remote PC moves from the position “A” to a position “B”, the mouse cursor 204 of the server moves from the position “a” to a position “b” in response to the movement of the mouse cursor 205 of the remote PC. The position “B” is a verge of the frame of window 201. At the instant when the mouse cursor 205 of the remote PC exceeds the position “B”, the mouse cursor 205 of the remote PC is displayed.
Next, when the mouse cursor 205 of the remote PC moves from the position “B” to a position “C”, and further to a position “D”, the mouse cursor 204 of the server does not move from the position “b”. When the mouse cursor 205 of the remote PC exceeds the position “D” and moves to the position “F”, the mouse cursor 205 of the remote PC becomes non-display, and the mouse cursor 204 of the server moves from the position “b” to a position “f”.
On the other hand, when the mouse cursor 205 of the remote PC moves from the position “B” to a position “C”, and further to a position “E”, the mouse cursor 204 of the server does not move from the position “b”. When the mouse cursor 205 of the remote PC exceeds the position “E” and moves to the position “G”, the mouse cursor 205 of the remote PC becomes non-display, and the mouse cursor 204 of the server moves from the position “b” to a position “g”.
Then, when the mouse cursor 204 of the server is moved from the position “g” to a position “h”, the mouse cursor 205 of the remote PC which is non-display can be moved from the position “G” to a position “H”. However, when the mouse cursor 204 of the server is moved from the position “f” to the position “h”, the mouse cursor 205 of the remote PC exceeds the frame of the window 201 before the mouse cursor 204 of the server reaches the position “h”, and hence it is impossible to move the mouse cursor 204 from the position “f” to the position “h”.
Thus, when the mouse cursor 205 of the remote PC is set to non-display in the window displaying the mouse cursor 204 of the server, it is impossible to provide a comfortable mouse operating environment for the operator of the mouse of the remote PC by the position gap between the mouse cursor 204 of the server and the mouse cursor 205 of the remote PC.
(Problem 3)
A description will now be given of the case where a problem similar to the problem 2 occurs.
When the screen of the server is operated from remote PC, a single operator does not necessarily operate it. That is, the screen of the server may be operated in the local besides the remote PC. The local represents an environment in which a keyboard, a mouse, and a monitor are directly connected to the server, and the screen of the server is operated.
FIG. 21A is a diagram showing an example of the screen of the conventional local, and FIG. 21B is a diagram showing an example of the screen of the conventional remote.
In FIGS. 21A and 21B, reference numeral 201 denotes a window where non-display of the mouse cursor has been set, reference numeral 202 denotes another window where display of the mouse cursor has been set, and reference numeral 203 denotes a screen of the remote PC. Reference numeral 204 denotes the mouse cursor of the server, reference numeral 205 denotes the mouse cursor of the remote PC. Reference numeral 206 denotes a screen of the local (i.e., a screen of the server). The screen of the server is displayed on a window 201.
A description will now be given of an example of the case where, first, the screen of the server is operated by the local side, the mouse cursor 204 of the server is moved from a position “a” to a position “b” or “c”, and then the mouse cursor 205 of the remote PC is operated.
When the mouse cursor 204 of the server is moved from the position “a” to the position “c”, and then the mouse cursor 204 of the server is moved from the position “c” to a position “d” by the operation of the mouse cursor 205 of the remote PC, an operator of the remote PC does not understand where the mouse cursor 205 of the remote PC exists at that time. For example, when the mouse cursor 205 of the remote PC is any one of at the positions “A”, “B”, and “C”, it is required that the operator of the remote PC moves the mouse cursor 205 of the remote PC in the direction of “Vcd”. In this example, even when the mouse cursor 205 of the remote PC is any one of at the positions “A”, “B”, and “C”, the mouse cursor 204 of the server can be moved to the position “d” without problems.
When the mouse cursor 204 of the server is moved from the position “a” to the position “c”, and then the mouse cursor 204 of the server is moved from the position “c” to the position “d” by the operation of the mouse cursor 205 of the remote PC, the problems never occur if the mouse cursor 205 of the remote PC is at the position “A”. However, when the mouse cursor 205 of the remote PC is at the position “B” or “C”, the mouse cursor 205 of the remote PC exceeds the frame of the window 201 before the mouse cursor 204 of the server is moved to the position “d”, and hence it is impossible to move the mouse cursor 204 of the server to the position “d”.
Thus, when the remote side and the local side alternately move the mouse cursor 204 of the server, it is impossible to provide a comfortable mouse operating environment for the operator of the mouse of the remote PC by the position gap between the mouse cursor 204 of the server and the mouse cursor 205 of the remote PC.
(Problem 4)
A description will now be given of an issue of the case where the mouse cursor 205 of the remote PC once goes out of the inside of the window 201 to the outside thereof, and goes into the inside of the window 201 from the outside thereof again.
FIG. 22 is a diagram showing an example of the screen of the conventional remote PC.
In FIG. 22, reference numeral 201 denotes a window where non-display of the mouse cursor has been set, reference numeral 202 denotes another window where display of the mouse cursor has been set, and reference numeral 203 denotes a screen of the remote PC. Reference numeral 204 denotes the mouse cursor of the server, reference numeral 205 denotes the mouse cursor of the remote PC.
In an initial state, the mouse cursor 204 of the server is at a position “a”, and the mouse cursor 205 of the remote PC is at a position “A” which is the same position as the position “a”. When the mouse cursor 205 of the remote PC is moved from the position “A” to a position “B′”, the mouse cursor 204 of the server is moved from the position “a” to a position “b”. The position “B′” and the position “b” are the same as each other.
Next, when the mouse cursor 205 of the remote PC exceeds the frame of the window 201, the mouse cursor 204 of the server stays without moving from the position “b”.
When the mouse cursor 205 of remote PC traces a route C, is moved from the position B to a position G, exceeds the frame of the window 201, reaches a position “H”, and is moved to a position “I”, the mouse cursor 204 of the server is moved from the position “b” to a position “i′”.
Here, when the operator of the remote PC manually sets the position gab correcting function to ON, and moves forcibly the mouse cursor 204 of the server from the position “i′” to the position “i”, there no position gap between the mouse cursor 204 of the server and the mouse cursor 205 of the remote PC, and hence the operator of the remote PC can accurately operate the mouse cursor 204 and the mouse cursor 205.
Thus, in the case where the mouse cursor 205 of the remote PC once goes out of the inside of the window 201 to the outside thereof, and goes into the inside of the window 201 from the outside thereof again, it is impossible to provide a comfortable mouse operating environment for the operator of the mouse of the remote PC by the position gap between the mouse cursor 204 of the server and the mouse cursor 205 of the remote PC as long as the position gap correcting function is not executed.